/**
 * 当前天气的dto
 */
export class WeatherForNow {
  /**
   * 代码  说明
   * 200  请求成功
   * 204  请求成功，但你查询的地区暂时没有你需要的数据。
   * 400  请求错误，可能包含错误的请求参数或缺少必选的请求参数。
   * 401  认证失败，可能使用了错误的KEY、数字签名错误、KEY的类型错误（如使用SDK的KEY去访问Web API）。
   * 402  超过访问次数或余额不足以支持继续访问服务，你可以充值、升级访问量或等待访问量重置。
   * 403  无访问权限，可能是绑定的PackageName、BundleID、域名IP地址不一致，或者是需要额外付费的数据。
   * 404  查询的数据或地区不存在。
   * 429  超过限定的QPM（每分钟访问次数），请参考QPM说明
   * 500  无响应或超时，接口服务异常请联系我们
   */
  isInit: boolean = false

  code: string
  /**
   * 当前API的最近更新时间
   */
  updateTime: string
  /**
   * 当前天气详情
   */
  now: Now

  static transition(dto: any): WeatherForNow {
    let weatherForNow = new WeatherForNow()
    weatherForNow.code = dto.code
    weatherForNow.updateTime = dto.updateTime
    weatherForNow.now = Now.transition(dto.now)
    return weatherForNow
  }
}

export class Now {
  /**
   * 数据观测时间
   */
  obsTime: string
  /**
   * 温度，默认单位：摄氏度
   */
  temp: string
  /**
   * 体感温度，默认单位：摄氏度
   */
  feelsLike: string
  /**
   * 天气状况的图标代码
   */
  icon: string
  /**
   * 天气状况的文字描述，包括阴晴雨雪等天气状态的描述
   */
  text: string
  /**
   * 风向360角度
   */
  wind360: string
  /**
   * 风向
   */
  windDir: string
  /**
   *  风力等级
   */
  windScale: string
  /**
   *  风速，公里/小时
   */
  windSpeed: string
  /**
   * 相对湿度，百分比数值
   */
  humidity: string
  /**
   * 大气压强，默认单位：百帕
   */
  pressure: string

  static transition(dto: any): Now {
    let now = new Now()
    now.obsTime = dto.obsTime
    now.temp = dto.temp
    now.feelsLike = dto.feelsLike
    now.icon = dto.icon
    now.text = dto.text
    now.wind360 = dto.wind360
    now.windDir = dto.windDir
    now.windScale = dto.windScale
    now.windSpeed = dto.windSpeed
    now.humidity = dto.humidity
    now.pressure = dto.pressure
    return now
  }
}